<template>
  <div>
    <!-- before-upload:限制上传文件的类型与大小
         on-success：上传成功拿到数据
        -->
    <UploadExcel :before-upload="beforeUpload" :on-success="onSuccess" />
  </div>
</template>
<script>
import UploadExcel from '@/components/lib/UploadExcel.vue'
import { sysUserBatch } from '@/api/employees'
import dayjs from 'dayjs'
export default {
  components: {
    UploadExcel
  },
  created() {
    this.changeTime(43535)
  },
  methods: {
    beforeUpload(file) {
      console.log('file', file)
      // 限制 文件大小
      const limitSize = file.size / 1024 < 1024
      if (!limitSize) {
        this.$message.error('请上传1kb以内的文件')
      }
      // 限制 文件类型
      const limitType = /\.(xlsx|xls|csv)$/.test(file.name)
      if (!limitType) {
        this.$message.error('请上传xlsx|xls|csv文件')
      }

      return limitSize && limitType
    //   return boolean值
    },

    async onSuccess(result) {
      // timeOfEntry	string	非必须		入职时间
      // username	string	非必须		姓名
      // workNumber	string	非必须		工号
      // mobile	string	非必须		手机号
      // correctionTime	string	非必须		转正时间

      console.log(result.results)
      const newArr = result.results.map(item => {
        return {
          timeOfEntry: this.changeTime(item['入职日期']),
          username: item['姓名'],
          workNumber: item['工号'],
          mobile: item['手机号'],
          correctionTime: this.changeTime(item['转正日期'])
        }
      })

      await sysUserBatch(newArr)
      this.$message.success('导入员工成功')
      this.$router.push('/employees')
    },
    // excel时间转换成js时间
    // 入职日期 43535
    // excel时间与js时间差别
    // 时间戳：js:从1970年到现在的毫秒数
    // excel时间数字：从1900年到现在的天数，从1开始计算，时区差8小时
    changeTime(excelTime) {
      const t = new Date((excelTime - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000)
      t.setYear(t.getFullYear() - 70)
      return dayjs(t).format('YYYY-MM-DD')
    }
  }
}
</script>
<style>
</style>
